/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.deliccio.entitys;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import com.deliccio.connect.Entidad;

@Entity
@Table(name="sucursales")
public class Sucursales implements Entidad,Serializable{
	private static final long serialVersionUID=1L;
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Basic(optional=false)
	@Column(name="idsucursales")
	private Integer id;
	@Column(name="nombre",length=20)
	private String nombre;
	@Column(name="codigo",length=20)
	private String codigo;
	@Column(name="direccion",length=100)
	private String direccion;
	@Column(name="fecRegistro")
	@Temporal(TemporalType.DATE)
	private Date fecRegistro;
	@Column(name="telefono",length=12)
	private String telefono;
	@JoinColumn(name="idubicacion")
	@ManyToOne
	private Ubicacion ubicacion;
	@JoinColumn(name="estado")
	@ManyToOne
	private Estadosgenerales estadosgenerales;
	@OneToMany(mappedBy="sucursales")
	private List<Mesa> mesaList;
	@OneToMany(mappedBy="sucursale" , fetch=FetchType.EAGER)
	private List<FotoPorSucursal> fotoPorSucursales;	
	@OneToMany(mappedBy="sucursale")
	private List<UsuarioPorSucursal> usuarioPorSucursals;
		
	
	public Sucursales(){
	}

	public Sucursales(Integer id,String nombre,String codigo,String direccion){
		this.id=id;
		this.nombre=nombre;
		this.codigo=codigo;
		this.direccion=direccion;
		
	}
	
	
	public Sucursales(Integer id,String nombre,String codigo,String direccion,Foto f){
		this.id=id;
		this.nombre=nombre;
		this.codigo=codigo;
		this.direccion=direccion;
	}
	
	public Sucursales(Integer id,String nombre){
		this.id=id;
		this.nombre=nombre;
	}
	
	public Integer getId(){
		return id;
	}

	public void setId(Integer id){
		this.id=id;
	}

	public String getNombre(){
		return nombre;
	}

	public void setNombre(String nombre){
		this.nombre=nombre;
	}

	public String getCodigo(){
		return codigo;
	}

	public void setCodigo(String codigo){
		this.codigo=codigo;
	}

	public String getDireccion(){
		return direccion;
	}

	public void setDireccion(String direccion){
		this.direccion=direccion;
	}

	public Date getFecRegistro(){
		return fecRegistro;
	}

	public void setFecRegistro(Date fecRegistro){
		this.fecRegistro=fecRegistro;
	}

	public Ubicacion getUbicacion(){
		return ubicacion;
	}

	public void setUbicacion(Ubicacion ubicacion){
		this.ubicacion=ubicacion;
	}


	public List<Mesa> getMesaList(){
		if(mesaList==null){
			mesaList=null;
		}
		return mesaList;
	}

	public void setMesaList(List<Mesa> mesaList){
		this.mesaList=mesaList;
	}

	public String getTelefono(){
		return telefono;
	}

	public void setTelefono(String telefono){
		this.telefono=telefono;
	}

	public Estadosgenerales getEstadosgenerales(){
		return estadosgenerales;
	}

	public void setEstadosgenerales(Estadosgenerales estadosgenerales){
		this.estadosgenerales=estadosgenerales;
	}

	
	public List<FotoPorSucursal> getFotoPorSucursales(){
		return fotoPorSucursales;
	}

	public void setFotoPorSucursales(List<FotoPorSucursal> fotoPorSucursales){
		this.fotoPorSucursales=fotoPorSucursales;
	}

	public List<UsuarioPorSucursal> getUsuarioPorSucursals(){
		return usuarioPorSucursals;
	}

	public void setUsuarioPorSucursals(List<UsuarioPorSucursal> usuarioPorSucursals){
		this.usuarioPorSucursals=usuarioPorSucursals;
	}
	
	
	
/*
 
	@SuppressWarnings("rawtypes")
	@Override
	public String toString(){
		String toString="[";
		@SuppressWarnings("unused")
		String campo,iscampo="";
		try{
			Class clase=this.getClass();
			Method[] metodos=clase.getDeclaredMethods();
			for(Method met : metodos){
				if(met.getName().indexOf("get") >= 0){
					toString+=met.getName() + "=" + met.invoke(this,null) + " - ";
				}
			}
			toString+="]";
		}
		catch(Exception e){
			System.out.println(e);
		}
		return toString;
	}
 */
}
